package com.itheima.config;


import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
 * 配置Swagger接口文档自动生成类
 */

@Slf4j
@Configuration
@EnableSwagger2
//刀子
@EnableKnife4j
public class SwaggerCongig {


    //配置接口生成文档配置
    @Bean
    public Docket createRestApi(){
        /**
         * 自动的扫描该包下的
         * @Controller， @RestController， @RequestMapping
         * 等SpringMVC的注解，依据这些注解来生成对应的接口文档。
         */
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())//定义接口文档信息
                .select()//指定扫描
                .apis(RequestHandlerSelectors.basePackage("com.itheima.controller"))//指定扫描的路径
                .paths(PathSelectors.any())//定义选择内容-全部
                .build();
    }
    //配置接口文档的表头版本
    private ApiInfo apiInfo(){
        return new ApiInfoBuilder()
                .title("瑞吉外卖")//配置表头
                .version("1.0")//配置版本
                .description("瑞吉外卖接口文档")//定义说明
                .build();
    }
}
